package user.interfaces;

import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.EmptyBorder;

import mercadologico.gui.marca.MarcaMain;
import mercadologico.gui.produto.GrupoGenericoProdutoMain;
import mercadologico.gui.produto.ProdutoCadastro;
import fiscal.gui.classificacao.ClassificacaoMain;
import fiscal.gui.estado.EstadoMain;
import fiscal.gui.moldeProduto.MoldeProdutoMain;
import fiscal.gui.moldeProduto.MoldeProdutoPesquisa;

@SuppressWarnings("serial")
public class JanelaPrincipal extends JFrame {

	private JPanel contentPane;
	private JMenuBar menuBar;
	private JMenu mnMercadologico;
	private JMenu mnCadastro;
	private JMenuItem mntmClassificao;
	private JMenuItem mntmProduto;
	private JMenuItem mntmModelos;
	private JMenu mnCompra;
	private JMenu mnEntidade;
	private JMenu mnFinanceiro;
	private JMenu mnVendas;
	private JMenu mnPesquisa;
	private JMenuItem mntmMoldelo;
	private JMenu mnParametrosFiscais;
	private JMenuItem mntmEstados;
	private JMenuItem mntmGrupoDeGenricos;
	private JMenuItem mntmMarca;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
				try {   
					UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());  
				} catch (UnsupportedLookAndFeelException ex) {  
					ex.printStackTrace();  
				} catch (IllegalAccessException ex) {  
					ex.printStackTrace();  
				} catch (InstantiationException ex) {  
					ex.printStackTrace();
				} catch (ClassNotFoundException ex) {  
					ex.printStackTrace();  
				}
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					JanelaPrincipal frame = new JanelaPrincipal();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public JanelaPrincipal() {
		setTitle("Gestor FXC");
		setIconImage(Toolkit.getDefaultToolkit().getImage(JanelaPrincipal.class.getResource("/user/interfaces/icones/Show.png")));
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 800, 400);
		setLocationRelativeTo(null);
		setJMenuBar(getMenuBar_1());
		contentPane = new JPanel();
		contentPane.setMaximumSize(new Dimension(800, 400));
		contentPane.setPreferredSize(new Dimension(800, 400));
		contentPane.setMinimumSize(new Dimension(800, 400));
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		GroupLayout gl_contentPane = new GroupLayout(contentPane);
		gl_contentPane.setHorizontalGroup(
			gl_contentPane.createParallelGroup(Alignment.LEADING)
				.addGap(0, 782, Short.MAX_VALUE)
		);
		gl_contentPane.setVerticalGroup(
			gl_contentPane.createParallelGroup(Alignment.LEADING)
				.addGap(0, 331, Short.MAX_VALUE)
		);
		contentPane.setLayout(gl_contentPane);
	}

	private JMenuBar getMenuBar_1() {
		if (menuBar == null) {
			menuBar = new JMenuBar();
			menuBar.setMaximumSize(new Dimension(0, 25));
			menuBar.setMinimumSize(new Dimension(0, 25));
			menuBar.setPreferredSize(new Dimension(0, 25));
			menuBar.add(getMnEntidade());
			menuBar.add(getMnMercadologico());
			menuBar.add(getMnCompra());
			menuBar.add(getMnFinanceiro());
			menuBar.add(getMnVendas());
		}
		return menuBar;
	}
	private JMenu getMnMercadologico() {
		if (mnMercadologico == null) {
			mnMercadologico = new JMenu("Mercadol\u00F3gico");
			mnMercadologico.add(getMnCadastro());
			mnMercadologico.add(getMnPesquisa());
			mnMercadologico.add(getMnParametrosFiscais());
		}
		return mnMercadologico;
	}
	private JMenu getMnCadastro() {
		if (mnCadastro == null) {
			mnCadastro = new JMenu("Cadastro");
			mnCadastro.setPreferredSize(new Dimension(160, 19));
			mnCadastro.setMinimumSize(new Dimension(500, 20));
			mnCadastro.setMaximumSize(new Dimension(500, 20));
			mnCadastro.add(getMntmClassificao());
			mnCadastro.add(getMntmGrupoDeGenricos());
			mnCadastro.add(getMntmMarca());
			mnCadastro.add(getMntmModelos());
			mnCadastro.add(getMntmProduto());
		}
		return mnCadastro;
	}
	private JMenuItem getMntmClassificao() {
		if (mntmClassificao == null) {
			mntmClassificao = new JMenuItem("Classifica\u00E7\u00E3o");
			mntmClassificao.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent arg0) {
					new ClassificacaoMain();
				}
			});
		}
		return mntmClassificao;
	}
	private JMenuItem getMntmProduto() {
		if (mntmProduto == null) {
			mntmProduto = new JMenuItem("Produto");
			mntmProduto.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent arg0) {
					new ProdutoCadastro().setVisible(true);
				}
			});
		}
		return mntmProduto;
	}
	private JMenuItem getMntmModelos() {
		if (mntmModelos == null) {
			mntmModelos = new JMenuItem("Modelo");
			mntmModelos.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent arg0) {
					new MoldeProdutoMain().setVisible(true);
				}
			});
		}
		return mntmModelos;
	}
	private JMenu getMnCompra() {
		if (mnCompra == null) {
			mnCompra = new JMenu("Compras");
		}
		return mnCompra;
	}
	private JMenu getMnEntidade() {
		if (mnEntidade == null) {
			mnEntidade = new JMenu("Entidades");
		}
		return mnEntidade;
	}
	private JMenu getMnFinanceiro() {
		if (mnFinanceiro == null) {
			mnFinanceiro = new JMenu("Financeiro");
		}
		return mnFinanceiro;
	}
	private JMenu getMnVendas() {
		if (mnVendas == null) {
			mnVendas = new JMenu("Vendas");
		}
		return mnVendas;
	}
	private JMenu getMnPesquisa() {
		if (mnPesquisa == null) {
			mnPesquisa = new JMenu("Pesquisa");
			mnPesquisa.add(getMntmMoldelo());
		}
		return mnPesquisa;
	}
	private JMenuItem getMntmMoldelo() {
		if (mntmMoldelo == null) {
			mntmMoldelo = new JMenuItem("Moldelo");
			mntmMoldelo.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent arg0) {
					new MoldeProdutoPesquisa();
				}
			});
		}
		return mntmMoldelo;
	}
	private JMenu getMnParametrosFiscais() {
		if (mnParametrosFiscais == null) {
			mnParametrosFiscais = new JMenu("Parametros Fiscais");
			mnParametrosFiscais.add(getMntmEstados());
		}
		return mnParametrosFiscais;
	}
	private JMenuItem getMntmEstados() {
		if (mntmEstados == null) {
			mntmEstados = new JMenuItem("Estados");
			mntmEstados.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					new EstadoMain().setVisible(true);
				}
			});
		}
		return mntmEstados;
	}
	private JMenuItem getMntmGrupoDeGenricos() {
		if (mntmGrupoDeGenricos == null) {
			mntmGrupoDeGenricos = new JMenuItem("Grupo de Gen\u00E9rico de Produtos");
			mntmGrupoDeGenricos.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent arg0) {
					new GrupoGenericoProdutoMain().setVisible(true);
				}
			});
		}
		return mntmGrupoDeGenricos;
	}
	private JMenuItem getMntmMarca() {
		if (mntmMarca == null) {
			mntmMarca = new JMenuItem("Marca");
			mntmMarca.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					MarcaMain mm = new MarcaMain();
					mm.setVisible(true);
				}
			});
		}
		return mntmMarca;
	}
}
